﻿using Microsoft.Win32;
using System.Windows;

namespace Black.CameraCapture.Client
{
    /// <summary>
    /// Fenêtre principale
    /// </summary>
    public partial class MainWindow : Window
    {
        #region Constructeurs

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        public MainWindow()
        {
            this.InitializeComponent();
        }

        #endregion

        #region Fonctions privées

        /// <summary>
        /// Se produit sur la fermeture de la fenêtre
        /// </summary>
        /// <param name="sender">Source de l'appel</param>
        /// <param name="e">Argument de l'appel</param>
        private void OnClosing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            this.Camera.Stop();
        }

        /// <summary>
        /// Se produit sur le clic du bouton Stop
        /// </summary>
        /// <param name="sender">Source de l'appel</param>
        /// <param name="e">Argument de l'appel</param>
        private void OnScreenshotClick(object sender, RoutedEventArgs e)
        {
            //this.Screenshot.Source = this.Camera.ScreenshotTake();

            SaveFileDialog dialog = new SaveFileDialog();
            dialog.FileName = "Screenshot.png";
            dialog.Filter = "Fichier PNG (*.png)|*.png";

            if (dialog.ShowDialog(this) == true)
                this.Camera.ScreenshotSave(dialog.FileName);
        }

        /// <summary>
        /// Se produit sur le clic du bouton Start
        /// </summary>
        /// <param name="sender">Source de l'appel</param>
        /// <param name="e">Argument de l'appel</param>
        private void OnStartClick(object sender, RoutedEventArgs e)
        {
            this.Camera.Start();
        }

        /// <summary>
        /// Se produit sur le clic du bouton Stop
        /// </summary>
        /// <param name="sender">Source de l'appel</param>
        /// <param name="e">Argument de l'appel</param>
        private void OnStopClick(object sender, RoutedEventArgs e)
        {
            this.Camera.Stop();
        }

        #endregion
    }
}
